কিউয়ে উপাদান যোগ করা (Enqueue)
void enqueue(struct Queue* q, int value) {
if (q->rear == MAX - 1) {
printf("Queue Overflow! Cannot enqueue %d\n", value);
} else {
if (q->front == -1) { // If queue is empty
q->front = 0; // Set front to 0
}
q->items[++(q->rear)] = value; // Increment rear and add value
printf("%d enqueued to queue\n", value);
}
}
কিউ থেকে উপাদান অপসারণ করা (Dequeue)
int dequeue(struct Queue* q) {
if (q->front == -1 || q->front > q->rear) {
printf("Queue Underflow! Cannot dequeue\n");
return -1; // Return -1 to indicate underflow
} else {
return q->items[(q->front)++]; // Return the front value and increment front
}
}
কিউয়ের প্রথম উপাদান দেখা (Peek)
int peek(struct Queue* q) {
if (q->front == -1 || q->front > q->rear) {
printf("Queue is empty! No front element\n");
return -1; // Return -1 to indicate empty queue
} else {
return q->items[q->front]; // Return the front value
}
}
পুরো প্রোগ্রাম উদাহরণ
#include <stdio.h>
#include <stdlib.h>
#define MAX 100 // Queue এর সর্বাধিক সাইজ
struct Queue {
int items[MAX]; // Queue উপাদানগুলির জন্য অ্যারে
int front; // Queue এর প্রথম উপাদানের ইনডেক্স
int rear; // Queue এর শেষ উপাদানের ইনডেক্স
};
// Queue তৈরি এবং ইনিশিয়ালাইজেশন
void initQueue(struct Queue* q) {
q->front = -1; // Queue খালি
q->rear = -1; // Queue খালি
}
// Enqueue অপারেশন
void enqueue(struct Queue* q, int value) {
if (q->rear == MAX - 1) {
printf("Queue Overflow! Cannot enqueue %d\n", value);
} else {
if (q->front == -1) { // If queue is empty
q->front = 0; // Set front to 0
}
q->items[++(q->rear)] = value; // Increment rear and add value
printf("%d enqueued to queue\n", value);
}
}
// Dequeue অপারেশন
int dequeue(struct Queue* q) {
if (q->front == -1 || q->front > q->rear) {
printf("Queue Underflow! Cannot dequeue\n");
return -1; // Return -1 to indicate underflow
} else {
return q->items[(q->front)++]; // Return the front value and increment front
}
}
// Peek অপারেশন
int peek(struct Queue* q) {
if (q->front == -1 || q->front > q->rear) {
printf("Queue is empty! No front element\n");
return -1; // Return -1 to indicate empty queue
} else {
return q->items[q->front]; // Return the front value
}
}
// Main function
int main() {
struct Queue queue; // Create a queue
initQueue(&queue); // Initialize the queue
enqueue(&queue, 10); // Enqueue elements
enqueue(&queue, 20);
enqueue(&queue, 30);
printf("Front element is %d\n", peek(&queue)); // Peek at front element
printf("%d dequeued from queue\n", dequeue(&queue)); // Dequeue element
printf("Front element is now %d\n", peek(&queue)); // Peek at front element
return 0;
}
Content added By
Read more